// 引入request函数
import {request} from '../../request/index'
Page({
    data: {
        // 标签栏数据
        tabs: [
            {
                id: 0,
                value: '综合',
                isActive: true
            },
            {
                id: 1,
                value: '销量',
                isActive: false
            },
            {
                id: 2,
                value: '价格',
                isActive: false
            }
        ],
        goodsList: []
    },
    // 接口需要的数据
    QueryParams: {
        query: '',
        cid: '',
        pagenum: 1,
        pagesize: 10,
    },
    // 总页数
    totalPages: 1,

    onLoad: function(options){
        this.QueryParams.cid = options.cid;
        this.getGoodsList();
    },
    onReady: function(){
        
    },
    onShow: function(){
        
    },
    onHide: function(){

    },
    onUnload: function(){

    },
   // 下拉刷新事件
    onPullDownRefresh: function(){
        // 重置goodsList和pagenum
        this.setData({
            goodsList: []
        });
        this.QueryParams.pagenum = 1,
        // 重置数据后再发送请求，请求成功关闭下拉刷新事件
        this.getGoodsList().
        then(value => wx.stopPullDownRefresh());
        
    },
    // 上拉触底事件
    onReachBottom: function(){
        // 判断有没有下一页数据
        if(this.QueryParams.pagenum >= this.totalPages){
            // 没有下一页数据
            wx.showToast({
                title: '别TM往下滑了!!!',
                mask: true
            });
        }
        else{
            // 还有下一页数据
            this.QueryParams.pagenum++;
            this.getGoodsList();
        }
    },
    onShareAppMessage: function(){

    },
    onPageScroll: function(){

    },
    //item(index,pagePath,text)
    onTabItemTap:function(item){

    },

    // 事件绑定：标签单击事件
    handleTabsItemTap(e){
        const {index} = e.detail;
        let {tabs} = this.data;
        tabs.forEach((v,i) => i===index ? v.isActive=true : v.isActive=false);
        this.setData({
            tabs
        })
    },

    // 获取请求数据的方法
    async getGoodsList() {
        try{
            const {data:res} = await request({url:'/goods/search', data:this.QueryParams});
            // 获取总条数
            const total = res.message.total;
            // 计算总页数
            this.totalPages = Math.ceil(total / this.QueryParams.pagesize);
            this.setData({
                goodsList: [...this.data.goodsList,...res.message.goods]
            });
        }catch(e){
            console.log(e);
        }
    },

});